iOS字符串编码与解码方法的实现与调用(UrlEncode/UrlDecode)

您所在的位置:网站首页 快捷指令 编码 解码 iOS字符串编码与解码方法的实现与调用(UrlEncode/UrlDecode)

iOS字符串编码与解码方法的实现与调用(UrlEncode/UrlDecode)

2024-03-12 11:22| 来源: 网络整理| 查看: 265

1.本编解码方法的功能说明 UrlEncode方法 把任何参数转换成适合放在URL中的字符串。具体规则:

字母,数字,连字符不变。空格转换成加号。其他所有的字符转换成用百分号表示,并接上字符的两位十六进制编码。如%2F UrlDecode方法 其功能与编码相反2. 字符串在编码之前之后的效果

原字符串:

Vk/nQmguwJIN

编码之后:

Vk%2FnQmguwJIN

解码之后:

Vk/nQmguwJIN3.UrlEncode/UrlDecode方法的实现

编码

+(NSString*)encodeString:(NSString*)unencodedString{ // CharactersToBeEscaped = @":/?&=;+!@#$()~',*"; // CharactersToLeaveUnescaped = @"[]."; NSString *encodedString = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)unencodedString, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8)); return encodedString; }

解码

//URLDEcode +(NSString *)decodeString:(NSString*)encodedString { //NSString *decodedString = [encodedString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding ]; NSString *decodedString = (__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL,(__bridge CFStringRef)encodedString,CFSTR(""),CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)); return decodedString; }4.使用建议

建议自己写个Category。比如,可以基于NSString新建一个URLEncoding类别文件,类名分别为NSString+URLEncoding.h和NSString+URLEncoding.m。然后,在你需要的地方导入该头文件即可。作为对比,与上面的实现不同,下面采用replaceOccurrencesOfString:方法实现解码功能。

其中: NSString+URLEncoding.h

#import @interface NSString (URLEncoding) // 字符串转码 - (NSString*)urlEncodeString; // 反URL编码 - (NSString *)decodeFromPercentEscapeString; @end

NSString+URLEncoding.m

#import "NSString+URLEncoding.h" @implementation NSString (URLEncoding) // 字符串编码 - (NSString *)urlEncodeString { NSString *result = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)self, NULL, CFSTR(":/?#[]@!$&’(){}*+,;="),kCFStringEncodingUTF8)); return result; } // 反URL编码 - (NSString *)decodeFromPercentEscapeString { NSMutableString *outputStr = [NSMutableString stringWithString:self]; [outputStr replaceOccurrencesOfString:@"+" withString:@" " options:NSLiteralSearch range:NSMakeRange(0, [outputStr length])]; return [outputStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; }5. 调用范例

在调用处的类中

#import "NSString+URLEncoding.h"

然后,调用上述方法:

[testStr urlEncodeString];

即可。

参考文献http://blog.csdn.net/qwerty123501029/article/details/7092077http://blog.csdn.net/typingios/article/details/9136005http://blog.csdn.net/bianhuanshizhe/article/details/46953155


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3